import axios from 'axios'
import baseConfig from '@/utils/config.js' 
import { ElMessage } from 'element-plus'
// 创建 axios 实例
const request = axios.create({
  baseURL: baseConfig.baseURL, // API 根地址
  timeout: 5000, // 超时时间
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
request.interceptors.request.use(
  (config) => {
    const token = uni.getStorageSync('token')
    if (token) {
      config.headers['Authorization'] = `Bearer ${token}`
    }

    // 添加固定的 mid 参数
    const mid = baseConfig.mid 

    if (config.method === 'get') {
      // GET 请求将 mid 添加到 params
      if (!config.params) {
        config.params = {}
      }
      config.params['mid'] = mid
    } else {
      // 其他请求方式（POST、PUT等）
      if (Array.isArray(config.data)) {
        // 如果是数组，包装成对象
        config.data = { mid, data: config.data }
      } else {
        // 如果是对象，直接添加 mid
        if (!config.data) {
          config.data = {}
        }
        config.data['mid'] = mid
      }
    }

    return config
  },
  (error) => Promise.reject(error)
)


// 响应拦截器
request.interceptors.response.use(
  (response) => {
   if (response.data.code !== 200 && response.data.code !== 1) {
     ElMessage.error(response.data.msg || '请求失败')
      return Promise.reject(response.data)
    }
    return response.data
  },
  (error) => {
    uni.showToast({
      title: '网络异常',
      icon: 'none'
    })
    return Promise.reject(error)
  }
)

export default request
